import request from "../../utils/request"
let isSend = false;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    placeholderData:{},
    hotList:[],//热歌榜数据
    inputValue:"",
    keywordData:[],//搜索关键字数据
    historyData:[]//历史记录
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getInitData(); 
    // 获取历史记录
    this.getSearchHistory();
  },
  //获取热搜榜与placeholder数据
  async getInitData(){
    let hotList = await request('/search/hot/detail');
    let placeholderData = await request('/search/default');
    this.setData({
      hotList:hotList.data,
      placeholderData:placeholderData.data
    })
  },
  //获取历史记录信息
  getSearchHistory(){
    let historyData = wx.getStorageSync('historyData')
    if(historyData){
      this.setData({
        historyData
      })
    }
  },
  //处理input事件
  handleInput(event){
    let inputValue = event.detail.value.trim();
    this.setData({
      inputValue
    })
    //这需要进行防抖处理（每隔300ms发一次请求）
    if(isSend){ //在300ms之间isSend始终为true
      return;
    }
    isSend = true;
    //根据关键字获取数据
    if(inputValue){
      this.getKeywordData(inputValue)
    }
    setTimeout(()=>{
      isSend = false;
    },500)

  },

  //获取搜索关键字数据
  async getKeywordData(keywords){
    let keywordData = await request("/search",{keywords,limit:10})
    this.setData({
      keywordData:keywordData.result.songs
    })
    
  },
  //清除搜索框中数据
  clearSearchContent(){
    this.setData({
      inputValue:""
    })
  },
  //清空历史信息
  deleteSearchHistory(){
    wx.showModal({
      content: '确认删除吗?',
      success:(res)=>{
        if(res.confirm){
          //清空数据
          this.setData({
            historyData:[]
          })
          wx.removeStorageSync('historyData')
        }
        return
      }
    })
  },
  //点击取消
  handleCancel(){
    wx.navigateBack()
  },
  //点击搜索结果列表
  handleSearchList(event){
    let {currentindex} = event.currentTarget.dataset;
    let keywordData = this.data.keywordData;
    let searchData  = keywordData[currentindex].name;
    let musicId  =keywordData[currentindex].id;
    //将searchData搜索的值存入到historyData之中
    const {historyData} = this.data;
    if(historyData.indexOf(searchData) !== -1){
      //则将重复项进行删除
      historyData.splice(historyData.indexOf(searchData),1)
    }
    //如果搜索历史的结果超过8项则将删除掉最后一项数据
    if(historyData.length >=8){
      historyData.pop();
    }
    //不进行重复添加
    historyData.unshift(searchData)

    this.setData({
      historyData
    })
    //将历史数据保存到storage中
    wx.setStorageSync('historyData', historyData)

    wx.navigateTo({
      url: '/songPackage/pages/songdetail/songdetail?ids='+musicId,
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})